草庐IT

java - 有序列表和类线程安全

全部标签

ruby - 如果我在单独的 Ruby 线程中进行任何密集计算,为什么 Ruby 1.9 GUI 会挂起?

Ruby1.9应该有本地线程,如果某些线程进入本地代码(比如GUI工具包主循环或某些Ruby库的C实现),GIL应该会提升。但是,如果我开始遵循在主线程中显示GUI的简单代码示例,并在单独的线程中执行一些基本数学运算-GUI会严重挂起,请尝试调整窗口大小以自己查看。我检查了不同的GUI工具包Qt(qtbindingsgem)——它的行为完全相同。在Windows7和OSX10.7上使用Ruby1.9.3-p0测试require'tk'require'thread'Thread.new{loop{a=1}}TkRoot.new.mainloop()Python中的相同代码运行良好,没有任

ruby - 使用 Hash#dig 或 Lonely operator(&.) 安全地为嵌套哈希赋值

h={data:{user:{value:"JohnDoe"}}}要为嵌套哈希赋值,我们可以使用h[:data][:user][:value]="Bob"但是如果中间的任何部分缺失,就会导致错误。有点像h.dig(:data,:user,:value)="Bob"不会工作,因为还没有可用的Hash#dig=。要安全地赋值,我们可以做h.dig(:data,:user)&.[]=(:value,"Bob")#orequivalentlyh.dig(:data,:user)&.store(:value,"Bob")但是有更好的方法吗? 最佳答案

ruby - 使用 Ruby 和 Minitest,如何运行具有不同数据的相同测试用例,仅由列表控制

我有对电话号码进行操作的Ruby2.0代码,我想使用MiniTest对其进行测试。我有一个函数,它接受一个电话号码参数并对其进行测试(包括断言)。每次调用该函数时,我都希望它成为一个新的测试用例。像这样:listOfPhoneNumbersForTesting.each{|phone|testphonephone}我不想要的是:classtest2125551212...重复10、20或100次以测试每个电话号码...显然,我可以将循环代码放在MiniTest::Unit::TestCase中,但无论我测试多少个电话号码,这都会导致只有一个测试用例,我不喜欢这样。(此外,如果其中一个断

ruby - Regexp.last_match 线程安全吗?

这是我正在查看的代码:defmethod_missing(id,*args)returnself.find(Regexp.last_match(1),args[0])ifid.id2name=~/find_by_(.+)/raiseNoMethodErrorend如果我有多个线程调用Regexp.last_match会怎样?如果我有多个线程使用method_missing方法调用对象会怎样? 最佳答案 Ruby1.9.2平台文档声明调用Regexp.last_match等同于读取特殊的$~全局变量。摘自“TheRubyProgram

ruby - 如何获取 ruby​​ 中的时区列表?

我想知道,如何在Ruby2.0中获取时区列表? 最佳答案 使用Rails的一个简单方法是:ActiveSupport::TimeZone.all 关于ruby-如何获取ruby​​中的时区列表?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/23527261/

ruby-on-rails - 如何在 Rails 中使用 gem 'acts-as-taggable-on' 时获取所有标签的列表(不是计数)

我在我的模型中设置了acts-as-taggable-ongem,如下所示:acts_as_taggable_on:deshanatags它使用上下文deshanatags。现在我需要在上下文中以下列格式获取所有标签的列表(不仅仅是为一个项目分配的标签。我需要所有标签):[{"id":"856","name":"House"},{"id":"1035","name":"DesperateHousewives"}]我该怎么做?我尝试遵循许多教程,但遇到了死胡同,因为它们中的大多数都是为Rails3编写的。Rails对模型进行了一些更改,例如删除了attr_accessor,这让我很难理解

ruby - 在 Ruby 中将 [] 与安全导航运算符一起使用

我目前有一段代码如下:ifmatch=request.path.match(/\A\/(?(?!admin|assets)\w+)/)match[:slug]end有没有办法使用安全导航运算符(在2.3.0中引入)来避免这种if条件? 最佳答案 只需使用普通(无糖)形式即可。request.path.match(/\A\/(?(?!admin|assets)\w+)/)&.[](:slug) 关于ruby-在Ruby中将[]与安全导航运算符一起使用,我们在StackOverflow上找到

ruby-on-rails - 从 rails 获取所有模型的列表

这个问题在这里已经有了答案:IsthereawaytogetacollectionofalltheModelsinyourRailsapp?(29个答案)关闭8年前。我需要一个包含所有模型(class_names)的列表,这些模型末尾有模式“Cube”。例子:我所有的模型:ModelFoo、ModelBar、ModelBarCube、Mode2BarCube我需要的:['ModelBarCube','Mode2BarCube']

ruby-on-rails - "The Ruby way"(mixins 和类重新打开)与依赖注入(inject)

在研究混合与依赖注入(inject)时,我经常听到“Ruby方式”这个词。开发人员通常会说一些类似的话Rubyletsyoureopenclassesandredefinemethodsmeansthatyoucaneasily"inject"newreferencesintoyourcodeattest-time.(参见http://weblog.jamisbuck.org/2007/7/29/net-ssh-revisited的#6)但是测试不是我主要关心的;我关心的是类重用。我想要可以在多个企业级Rails应用程序中重用的类。那么重用类发生了什么?使用mixins和重新打开类似乎

ruby-on-rails - Ruby/Rails 线程安全

我时常研究Ruby,但我没有用它做过任何大的或多线程的事情。我听说MRI只支持绿色线程,而JRuby通过JVM支持native线程。然而,我偶然发现博客和讨论组上的评论说“Rails不是线程安全的”或者Ruby本身不是线程安全的。例如有人评论说require语句有问题。这听起来有点基础。我见过很多不能正确处理并发的Java应用程序,我时不时地做噩梦:-)但至少你可以用Java编写线程安全的应用程序如果您真的知道自己在做什么(这并不容易)。这一切听起来很令人震惊,有人可以详细说明一下吗?到底是什么问题,如果是这种情况,Rails是如何设法工作的?我可以编写在没有竞争条件和死锁的情况下正常